home *** CD-ROM | disk | FTP | other *** search
/ Wintainment 500 / Wintainment 500.iso / 012a / swarm95 / readme.txt next >
Text File  |  1996-09-07  |  6KB  |  138 lines

  1.     --------------------        Last Updated 20-Aug-96
  2.     --------------------
  3.     Swarm95 Readme Notes        David Cook
  4.     --------------------        Dave cook Consulting
  5.     --------------------        davepc2@oz.net
  6.                                 http://www.oz.net/~davepc2
  7.  
  8. What is it?
  9. ===========
  10. Swarm95 is a little screen saver for Windows 95 which depicts a wasp
  11. being chased by a swarm of bees. It's a very simple little algorithm,
  12. but a really interesting effect. 
  13.  
  14.  
  15. History and Revision Notes
  16. ==========================
  17. This is the latest in a series of Swarmer apps that I derived from an
  18. piece of sample code written I found on a DECUS tape many years ago.
  19. The author was Jeff Butterworth and it was written for DECWindows, which
  20. I ported to as an app to DOS, Windows 3.1, and eventually made a Windows
  21. screen saver out of it. I've continued tinkering with it, upgrading it
  22. to Win32 and Win95, and playing around with new features.
  23.  
  24. I don't know if Jeff Butterworth is truely the original author or not.
  25. I've seen this code implemented on Sun workstations, and have seen
  26. implementations for Windows by other people doing the same thing I have.
  27. However, I credit Jeff, since his is the earliest version of this code
  28. I've found.
  29.  
  30. This version was written entirely in MFC, not using the Windows SDK
  31. screen saver APIs. I originally based this on Nigel Thompson's POP3 screen
  32. saver in the MSDN and had no shame whatsoever in lifting his code framework.
  33. However, I've now converted this to use the MFC saver example in order
  34. to get the preview working properly.
  35.  
  36. I've linked this with the static MFC libraries, to avoid having to
  37. bundle the DLLs and writing an installation procedure. This results in
  38. in a pretty hefty executable, sorry...
  39.  
  40. The Windows 95 preview mode is not quite perfect yet. It sometimes doesn't
  41. erase the preview window background and I haven't figured out which message
  42. the app gets in order to handle this properly.
  43.  
  44.  
  45. Usage
  46. =====
  47. There are three basic configuration property sheets: General, Wasp, and Bees.
  48.  
  49. General Settings
  50. ----------------
  51. The General properties include the update rate for moving things around, the
  52. background color (if you don't like the default of black), and a switch to
  53. XOR the little critters onto the desktop. The XOR option isn't enabled yet.
  54.  
  55. Wasp Settings
  56. -------------
  57. The Wasp properties fall into two general catagories: movement and appearance.
  58.  
  59. The movememnt is controlled by the velocity and acceleration settings. These
  60. control the maximum velocity and acceleration, respectively, that the wasp
  61. can attain. These should be slightly higher than the bees settings, otherwise
  62. the bees will just swarm all over the wasp in a cloud.
  63.  
  64. The border setting controls how close the wasp can get to the edge of the
  65. screen before turning around. This keeps the wasp on the desktop. If you set
  66. this to -1, the wasp can wrap around to the other side of the screen, which
  67. drives the bees nuts!
  68.  
  69. The Color button brings up a common dialog box for setting the wasp color.
  70. Tip: If you want to make the wasp invisible, turn the Visible checkbox off,
  71. rather than setting the wasp color to black.
  72.  
  73. The Size slider control sets the chubbiness of the wasp. The default is
  74. 1 pixel and anything larger will make it move a lot slower.
  75.  
  76. The Trails checkbox lets you leave the previous wasp segments, i.e., don't
  77. erase the old wasp segments.
  78.  
  79. The Visible checkbox lets you turn the wasp on or off. With the wasp turned
  80. off, all you see are the bees sort of wandering around aimlessly.
  81.  
  82. Bees Settings
  83. -------------
  84. Many of the bee settings are the same as the wasp. The differences are:
  85.  
  86. The number of bees can be set in the Number field. The more bees you have
  87. going, the slower the animation will get, of course.
  88.  
  89. The Spew checkbox was just an experiment. Rather than having the bees all
  90. start at random, the come spewing out of the center of the screen one at a
  91. time.
  92.  
  93. The Wait/Sleep checkbox was also an experiment. It causes the bees to
  94. periodically stop and rest, and gives another interesting effect. The Wake Time
  95. and Sleep Time settings are determined by the number of bees. A typical setting
  96. might be Bees = 75, Wake Time = 100, Sleep Time = 50.
  97.  
  98.  
  99. To Do List
  100. ================
  101. - Set up teeny database to allow saving multiple configurations. Add "Reset to
  102.   Default" button in General settings.
  103. - Implement the oft-asked-for color cycling.
  104. - Re-implement sound support (for what its worth).
  105. - Add Helpfile.
  106. - Add own button(s) for preview-window/preview-desktop in config properties.
  107.  
  108.  
  109. Revision History
  110. ================
  111. 12-Jun-96
  112. 1) Enabled srand(). Had been commented out for testing.
  113. 2) Added color palette support.
  114.  
  115. 20-Aug-95
  116. 1) Converted from Nigel's to MFC saver f/t w/ appropriate corrections in
  117.    the MFC code.
  118. 2) Preview mode working now.
  119. 3) Fixed bug in WakeSleep and Spew logic which disabled bees under some
  120.    combinations of these settings.
  121.  
  122. 24-Aug-96
  123. 1) Added additional randomization to CWasp so that it changes direction in
  124.    x or y axis randomly every WASP_DIRCHANGE cycles. This prevents the wasp
  125.    from tending to drift in the same direction all the time.
  126. 2) Fixed bug in CWasp logic wherein it tended to drift toward 0,0. Due to
  127.    integer truncation error in RandZ(). Fixed it by forcing m_pBug->nAccel to
  128.    be odd value in the CWasp::Init() function.
  129. 3) Added check for nSize in CBug::Render(). Use this to make bugs invisible if
  130.    size is set to zero.
  131. 4) Added check in CDrawWnd::DoInit() to see if number of bees is zero. If so,
  132.    then don't try to allocate memory. Yet another way to make bees invisible.
  133. 5) Added check for NULL argv in MatchOption().
  134.  
  135.  7-Aug-96
  136.  1) Added Sound property page, and Startup/Shutdown sound settings.
  137.  
  138.